Ext.BLANK_IMAGE_URL = 'ext/resources/images/default/s.gif';

function ext_form_submit_onclick(form, action){
	if(action != null)
		form.action = action;
	form.submit();
	ext_window_close(true);
	return false;
}

function ext_window_close(_returnValue){
	var win = ext_window_current();
	if(win){
		if(_returnValue != null)
			win.returnValue = _returnValue;
		win[win.closeAction]();
		win.destroy();
	}
}

function ext_window_current(){
	var _parent = window.parent;
	var _winId = _parent.Ext.WindowMgr.getActive().id;
	var win = _parent.Ext.getCmp(_winId);	
	return win ? win : null;
}
//------------------------------------------------------------------------------------
/**
 * 对表格中的数据进行更改或添加之类操作的弹出窗户后的操作
 * 需要在目前界面处理完成后，即url对应的页面关闭时返回win.returnValue
 * 即使用：
 *     ext_window_close(true);
 * 关闭，其中的true/false就是返回值 ，以确认当前grid否需要重载数据
 */
function ext_grid_create(_title, _grid, _url, _width, _height) {
	var win = new Ext.Window({
		title : _title,
		width : _width,
		height : _height,
		layout : 'form',
		modal : true,
		resizable : false,
		contentEl : Ext.DomHelper.append(document.body, {
			tag : 'iframe',
			style : 'border 0px none; scrollbar : false',
			src : _url,
			height : '100%',
			width : '100%'
		}),
		listeners : {
			close : function(){
				setTimeout(function(){
					if(win.returnValue) //判断是否需要刷新
						_grid.getStore().reload();
				}, 100);
			}
		}
	});
	win.show();
}
/**
 * 对表格中的数据进行更改或添加之类操作的弹出窗户后的操作
 * 需要在目前界面处理完成后，即url对应的页面关闭时返回win.returnValue
 * 即使用：
 *     ext_window_close(true);
 * 关闭，其中的true/false就是返回值 ，以确认当前grid否需要重载数据
 */
function ext_grid_update(_title, _grid, _fnName, _fnId, _url, _width, _height) {
	var fv = ext_grid_getValueBySelectField(_grid, _fnName, "", false);
	if (fv == '')
		return;
	fv = ext_grid_getValueBySelectField(_grid, _fnId, "", false);
	if (fv == '')
		return;
	var win = new Ext.Window({
		title : _title,
		width : _width,
		height : _height,
		layout : 'form',
		modal : true,
		resizable : false,
		contentEl : Ext.DomHelper.append(document.body, {
			tag : 'iframe',
			style : 'border 0px none; scrollbar : false',
			src : _url + '?id=' + fv,
			height : '100%',
			width : '100%'
		}),
		listeners : {
			close : function(){
				setTimeout(function(){
					if(win.returnValue) //判断是否需要刷新
						_grid.getStore().reload();
				}, 100);
			}
		}
	});
	win.show();
}

// ext_grid_remove(form_grid, 'ACCOUNT', 'ACL_ACCOUNT_ID', rpc.RpcAccount);
function ext_grid_remove(_grid, _fnName, _fnId, _rpcObj){
	alert(_rpcObj);
	var fv = ext_grid_getValueBySelectField(_grid, _fnName, "", true);
	if (fv == '')
		return;						
	Ext.Msg.confirm('删除确认', '确定删除？<br>[' + fv + ']', function(btn) {
		if (btn == "yes") {								
			fv = ext_grid_getValueBySelectField(_grid, _fnId, "", true);
			if (fv == '')
				return;
			var vv = _rpcObj.remove(fv); // RPC
			if (vv > 0){
				Ext.Msg.alert("提示", "删除完成!");
				_grid.getStore().reload();
			}else
				Ext.Msg.alert("提示", "删除失败!");								
		}
	});
}
//------------------------------------------------------------------------------------
// Form数据处理
/**
 * 返回当前form中所有字段的名称和值组成的字串，其中，字段间用@@隔开，字段名和值用::隔开
 */
function ext_form_items_values(form){
	var _vv = "";
	form.items.each(function(item,index,length){
		_vv += item.getName() + "::" + item.getValue();
		if(index < length - 1)
			_vv += "@@";					
	});
	return _vv;
}
//------------------------------------------------------------------------------------
/**
 * 获取gird中选中的记录，一条或多条
 * 例：
 * 	var fv = ext_common_grid_getValue_bySelectField( grid, "record_id", "'" );
 *  返回所有选中的记录的record_id字段的值，以逗号分隔，并以单引号为分隔符，如：'1','2','3'
 *  
 * @param _grid grid对象
 * @param _field_name 字段名
 * @param _split 分隔符
 * @param _allowMulti 是否可以选择多条记录
 * @returns {String} 
 */
function ext_grid_getValueBySelectField(_grid, _field_name, _split, _allowMulti) {
	if (_split == null)
		_split = '';
	if (_allowMulti == null)
		_allowMulti = false;

	var re = '';
	var records = _grid.getSelectionModel().getSelections();
	if (records.length == 0) {
		Ext.Msg.alert('提示','请先选择一条记录!');
		return re;
	}
	if (!_allowMulti && records.length > 1) {
		Ext.Msg.alert('提示','请只选择一条记录!');
		return re;
	}
	for ( var i = 0; i < records.length; i++) {
		if (i > 0)
			re += ',';
		re += _split + records[i].get(_field_name) + _split;
	}
	return re;
}